package cn.edu.sdjzu.xg.eagle.util;

import java.util.regex.Pattern;

/**
 * @author tg.si@188.com
 * 在转换字串到整型和长整型时，使用捕捉NumberFormatException异常的方式性能较差
 * @since 2024/4/27 13:39
 */

public class NumberUtil {
    private static final String LONG_INTEGER_REGEX = "^[-+]?\\d{1,19}$";
    private static final Pattern LONG_INTEGER_PATTERN = Pattern.compile(LONG_INTEGER_REGEX);

    /**
     * 检查给定的字符串是否可以解析为长整数（long）。
     *
     * @param stringToParse 要解析的字符串
     * @return 如果字符串可以解析为长整数，则返回 true，否则返回 false
     */
    public static boolean isParseableAsLong(String stringToParse) {
        if (stringToParse == null || stringToParse.isEmpty()) {
            return false;
        }

        return LONG_INTEGER_PATTERN.matcher(stringToParse).matches();
    }
}
